package sword2offer;

import java.util.HashMap;

/**
 * <p>
 * 第一个只出现一次的字符
 * </p>
 在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。
 */
 // 方案一：使用HashMap：第一次遍历字符串存入HashMap,第二次遍历字符串查找HashMap
 // 方案二：使用按照插入顺序的LinkedHashMap
public class S_50 {
    class Solution {
		public char firstUniqChar(String s) {
        HashMap<Character, Boolean> dic = new HashMap<>();
        char[] sc = s.toCharArray();
        for(char c : sc)
            dic.put(c, !dic.containsKey(c));
        for(char c : sc)
            if(dic.get(c)) return c;
        return ' ';
		}
	}
}